package com.macro.mall.wms.service;

import com.macro.mall.common.api.CommonResult;
import com.macro.mall.model.WmsInStorage;
import com.macro.mall.model.WmsInStorageItem;
import com.macro.mall.wms.dto.InStorageDto;
import com.macro.mall.wms.dto.WmsInStorageItemDTO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 入库
 * @author zhouboyu
 * @Date 2020年9月7日
 */
public interface IInStorageService {

    /**
     * 创建入库订单
     * @param inStorageDto 商品规格id和数量的封装集合
     * @return
     */
    @Transactional
    CommonResult createInStorage(Long adminId,String username,Long storeId, InStorageDto inStorageDto);

    /**
     * 未审核时修改入库单
     * @param inStorageDto 待修改的数据集合
     * @return
     */
    @Transactional
    CommonResult cudInStorage(Long adminId,String username,Long storeId, Long id, InStorageDto inStorageDto);

    /**
     * 审核入库单，修改库存
     * @param id 入库单id
     * @return
     */
    @Transactional
    CommonResult auditInStorage(Long adminId,String username,Long storeId,Long id);

    /**
     * 删除未审核的入库单
     * @param id
     * @return
     */
    @Transactional
    CommonResult deleteInStorage(Long id,Long adminId);

    /**
     * 根据id查询入库订单
     * @param orderId 查询条件
     * @return
     */
    List<WmsInStorageItemDTO> getInStorageItems(Long orderId);

    /**
     * 查询门店所有入库单
     * @param wmsInStorage 查询条件
     * @return
     */
    List<WmsInStorage> getInStorageList(Long storeId, WmsInStorage wmsInStorage,Integer pageNum,Integer pageSize);


    /**
     * 根据id查询入库单详情
     * @param id
     * @return
     */
    CommonResult<InStorageDto> getInStorage(Long id);
}
